Methods and apparatus to provide a handheld pointer-based user interface

ABSTRACT

Methods and apparatus to provide a handheld pointer-based user interface are described herein. An example apparatus includes a wireless pointer component and one or more base components. The wireless pointer component is configured to transmit one or more human-computer interaction (HCI) signals associated with an HCI event via a first communication link. One or more base components are operatively coupled to a screen of a display to receive the one or more HCI signals from the wireless pointer component via the first communication link. Further, the one or more base components are configured to generate at least one of operating information and position information of the wireless pointer component based on the one or more HCI signals, and to transmit the at least one of operating information and position information to a processor configured to generate screen information on the screen of the display via a second communication link.

TECHNICAL FIELD

The present disclosure relates generally to user interfaces forprocessor systems, and more particularly, to methods and apparatus toprovide a handheld pointer-based user interface.

BACKGROUND

To provide greater convenience for individuals to use and interact withprocessor systems such as personal computers (PCs) (e.g., desktopcomputers, laptop computers, and tablet PCs) and handheld devices (e.g.,personal digital assistants (PDAs) and pocket PCs), efforts have beenmade to improve human-computer interactions (HCI). On tablet PCs andpocket PCs, for example, a user may write, draw, and/or perform anyother intuitive aspects of using pen and paper by using naturalhandwriting with a stylus or an electronic pen directly on the displayscreens. In fact, the user may use the stylus or the electronic peninstead a mouse and/or a keyboard to perform other computer functionssuch as inputting text, selecting and opening software applications,scrolling through documents, etc. The touch-sensitive screens allowusers to interact with the tablet PCs and the pocket PCs as describedabove. To provide touch-sensitive screens, typically one or more layersare built into the display screens of the tablet PCs and the pocket PCs.However, most displays and monitors for desktop computers and laptopcomputers do not include the built-in layers to provide thetouch-sensitive screen. As a result, most processor systems are notconfigured to provide individuals with a user interface using naturaland intuitive hand motion such as writing, drawing, etc. Further,touch-sensitive screens are costly to manufacture and inaccurate forlarger sized screens.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram representation of an example handheldpointer-based user interface (PUI) system.

FIG. 2 is a diagram representation of example position information ofthe example handheld PUI system shown in FIG. 1.

FIG. 3 is a timing diagram representation of example HCI signals of theexample handheld PUI system shown in FIG. 1.

FIG. 4 is a time diagram representation of other example HCI signals ofthe example handheld PUI system shown in FIG. 1.

FIG. 5 is a block diagram representation of an example architecturalhierarchy of the example handheld PUI system shown in FIG. 1.

FIG. 6 is a block diagram represent of an example system driver of theexample handheld PUI system shown in FIG. 1.

FIG. 7 is a schematic diagram representation of the example handheld PUIsystem shown in FIG. 1.

FIG. 8 is another schematic diagram representation of the examplehandheld PUI system shown in FIG. 1.

FIG. 9 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example handheld PUIsystem shown in FIG. 1.

FIG. 10 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example wirelesspointer component of the example handheld PUI system shown in FIG. 1.

FIG. 11 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example basecomponent of the example handheld PUI system shown in FIG. 1.

FIG. 12 is a flow diagram representation of example machine readableinstructions that may be executed to implement the example processor ofthe example handheld PUI system shown in FIG. 1.

FIG. 13 is a block diagram representation of an example processor systemthat may used to implement the example handheld PUI system shown in FIG.1.

DETAILED DESCRIPTION

Although the following discloses example systems including, among othercomponents, software or firmware executed on hardware, it should benoted that such systems are merely illustrative and should not beconsidered as limiting. For example, it is contemplated that any or allof the disclosed hardware, software, and/or firmware components could beembodied exclusively in hardware, exclusively in software, exclusivelyin firmware or in some combination of hardware, software, and/orfirmware.

In the example of FIG. 1, the illustrated handheld PUI system 100includes a handheld PUI device 110, a processor 120, and a display 130.The handheld PUI device 110 includes a wireless pointer component 140and one or more base components 150. The wireless pointer component 140is operatively coupled to the one or more base components 150 via afirst communication link 160 (e.g., a wireless link such as anultrasound-based link). The one or more base components 150 areoperatively coupled to the processor 120 via a second communication link170 (e.g., a wired link and/or a wireless link such as a radiofrequency-based link). In general and as described in detail below, thehandheld PUI device 110, which may be implemented using a pen-typedevice, is responsive to human-computer interaction (HCI) eventscorresponding to hand motion of a user such as writing, drawing,selecting, scrolling, etc. For example, a user may initiate an HCI eventby writing directly on the screen 132 of the display 130 with thewireless pointer component 140. The wireless pointer component 140 maytransmit one or more HCI signals to the one or more base components 150via the first communication link 160. Based on the one or more HCIsignals, the one or more base components 150 generate and transmitposition information to the processor 120 via the second communicationlink 170. Accordingly, the processor 120 generates screen informationcorresponding to the HCI event on the screen 132 of the display 130.Thus, the screen information appears on the screen 132 as if the screeninformation were handwritten directly on the screen 132 by the user. Asa result, the handheld PUI device 110 provides an alternative userinterface especially for individuals who may have difficultymanipulating a mouse and/or a keyboard to interact with the processor120. Further, the handheld PUI device 110 provides a user interfacebased on natural and intuitive hand motion of the user so that thescreen 132 may operate touch screen-like but without integrating costlytouch-screen technology into the display 130.

The wireless pointer component 140 includes a detecting unit 142 and atransmitting unit 144, which is operatively coupled to the detectingunit 142. The detecting unit 142 is configured to detect an HCI eventand to trigger the transmitting unit 144. In one particular example, thedetecting unit 142 may be a switch configured to detect when thewireless pointer component 140 has been placed on the screen 132 of thedisplay 130. As mentioned above, the HCI event is initiated by a user.For example, the HCI event may correspond to hand motion of a user suchas writing, drawing, selecting, scrolling, etc. The transmitting unit144 is configured to transmit one or more HCI signals such as ultrasonicsignals via the first communication link 160. While the one or more HCIsignals of the handheld PUI device 110 shown in FIG. 1 is particularlywell suited for implementation with ultrasonic signals, persons ofordinary skill in the art will readily appreciate that the one or moreHCI signals may be implemented with radio frequency (RF) signalsincluding infrared, microwaves, and ultra-high-frequency (UHF).

As noted above, the base component 150 is configured to generateposition information of the wireless pointer component 140 based on theone or more HCI signals from the wireless pointer component 140. In oneparticular example, the base component 150 includes a receiving unit152, a processing unit 154, and a transmitting unit 156. The receivingunit 152 is configured to receive the one or more HCI signals from thetransmitting unit 144 of the wireless pointer component 140. In theexample of FIG. 2, the receiving unit 152 is generally shown as beingimplemented using a first sensor 252 and a second sensor 254. Forexample, the first and second sensors 252, 254 may be ultrasound sensorsseparated by a distance of 2 d. The transmitting unit 144 of thewireless pointer component 140 is located at Point 1 210 with coordinate(x1, y1), which is away from the first sensor 452 by a first distance L1and away from the second sensor 454 by a second distance L2.

When the wireless pointer component 140 is triggered (e.g., the tip 642of FIG. 6 is pressed on the screen 632 of the display 630), thetransmitting unit 144 of the wireless pointer component 140 transmitsone or more ultrasonic signals to the first and second sensors 252, 254of the base component 150. The one or more ultrasonic signals from thetransmitting unit 144 reaches the first and second sensors 252, 254 atdifferent times because the first and second distances L1, L2 betweenthe transmitting unit 144 and the first and second sensors 252, 254,respectively, are different. Persons of ordinary skill in the art willreadily appreciate that the base component 150 detects the timedifference between receiving the one or more ultrasonic signals from thetransmitting unit 144 via the first and second distances L1, L2.

The processing unit 154 is operatively coupled to the receiving unit152. In response to the receiving unit 152 detecting the one or moreultrasonic signals, the processing unit 154 is configured to generateposition information of the wireless pointer component 140 by convertingto distance from time and speed of propagation of the one or moreultrasonic signals. In one particular example, the processing unit 154calculates the first and second distances L1, L2 for the processor 120to calculate the coordinate (x, y) of the transmitting unit 144 asdescribed in detail below.

The transmitting unit 156 is operatively coupled to the processing unit154. Further, the transmitting unit 156 is configured to transmit theposition information generated by the processing unit 154 to theprocessor 120 via the second communication link 170 so that theprocessor 120 may generate screen information corresponding to the HCIevent on the screen 132 of the display 130.

As the wireless pointer component 140 moves from Point 1 210 atcoordinate (x1, y1) to Point 2 220 at coordinate (x2, y2) and then toPoint 3 230 at coordinate (x3, y3), the first and second sensors 252,254 receives the one or more ultrasonic signals from the transmittingunit 144 of the wireless pointer component 140 at different times. Inthe example of FIG. 3, the transmitting unit 144 transmits a first HCIsignal 310 at Point 1 210 from time t0 until time t2. The first sensor252 detects the first HCI signal 310 starting from time t1 whereas thesecond sensor 254 detects the first HCI signal 310 starting from timet2, which is later than time t1, because the first sensor 252 is closerto Point 1 210 than the second sensor 254 (i.e., the first sensor 252receives the first HCI signal 310 before the second sensor 254). Thetransmitting unit 144 stops transmission from time t2 to time t3, andthen starts transmission again at time t3. When the transmitting unit144 transmits a second HCI signal 320 at Point 2 220 from time t3 untiltime 5, both the first and second sensors 252, 254 detect the second HCIsignal 320 simultaneously at time t4 because the first and secondsensors 252, 254 are equidistant from Point 2 220. The transmitting unit144 stops transmission from time t5 to time t6, and then startstransmission again at time t6. When the transmitting unit 144 transmitsa third HCI signal 330 at Point 3 230 from time t6 until time t9, thesecond sensor 254 detects the third HCI signal 330 at time t7 whereasthe first sensor 252 detects the third HCI signal 330 at time t8, whichis later than time t7, because the second sensor 254 is closer to Point3 230 than the first sensor 252 (i.e., the second sensor 254 receivesthe HCI signal 330 before the first sensor 252).

Alternatively, the transmitting unit 144 may encode the one or more HCIsignals before transmission. In the example of FIG. 4, the transmittingunit 144 encodes a first HCI signal 410 and transmits the first HCIsignal 410 from Point 1 210 at time t0. The first sensor 252 detects thefirst HCI signal 410 at time t1 whereas the second sensor 254 detectsthe first HCI signal 410 at time t2 because the first sensor 252 iscloser to Point 1 210 than the second sensor 254. As the wirelesspointer component 140 moves toward Point 2 220, the transmitting unit144 encodes a second HCI signal 420 with a code different than that ofthe first HCI signal 410 so that the first and second sensors 252, 254may identify the second HCI signal 420 as a different signal to detectthe time of receipt to calculate the coordinate of Point 2 220. At timet3, the transmitting unit 144 transmits the second HCI signal 420, andboth the first and second sensors 252, 254 detect the second HCI signal420 at the same time (i.e., time t4) because the first and secondsensors 252, 254 are equidistant from Point 2 220. At time t5, thetransmitting unit 144 transmits a third HCI signal 430 from Point 3 230.Likewise, the transmitting unit 144 encodes the third HCI signal 430with a code different than that of the first and second HCI signals 410,420. The second sensor 254 detects the third HCI signal 430 at time t6whereas the first sensor 252 detects the third HCI signal 430 at time t7because the second sensor 254 is closer to Point 3 230.

Further, the handheld PUI device 110 may be operate in a hover mode. Inparticular, the transmitting unit 144 of the wireless pointer component140 may continuously transmit one or more HCI signals without beingtriggered by the detecting unit 142 (e.g., without the tip 642 of FIG. 6being pressed on the screen 632 of the display 630). The base component150 may receive the HCI signal, generate position information based onthe HCI signal, and transmit the position information to the processor120 as described above. In addition to operating in a write mode asdescribed in detail above, the handheld PUI device 110 may also operatein other modes such as an erase mode, select mode, scroll mode, etc. bypressing a button (e.g., the buttons 644 and 744 shown in FIGS. 6 and 7,respectively) on the wireless pointer component 140 to toggle betweenthe different operating modes. Persons of ordinary skill in the art willreadily appreciate that other methods in addition to a button-basedsystem may be implemented on the handheld PUI device 110 to switch fromdifferent operating modes such as a level-based system, a knob-basedsystem, a voice recognition-based system, etc.

While components shown in FIG. 1 are depicted as separate blocks withinthe handheld PUI device 110, the functions performed by some of theseblocks may be integrated within a single semiconductor circuit or may beimplemented using two or more separate integrated circuits. For example,although the receiving unit 152 and the transmitting unit 156 aredepicted as separate blocks within the base component 150, persons ofordinary skill in the art will readily appreciate that the receivingunit 152 and the transmitting unit 156 may be integrated within a singlesemiconductor circuit.

In the example of FIG. 5, the illustrated architectural hierarchy 500 ofthe handheld PUI system 100 includes hardware 510, one or more drivers520, and one or more applications 530. The PUI firmware 512 of thehardware 510 (i.e., the wireless pointer component 140 and/or the basecomponent 150) transmits position information to the processor 120through a universal serial bus (USB) port via the second communicationlink 170. To generate screen information (e.g., writing and/or drawing)on the display 130, the drivers 520 and applications 530 of theprocessor 120 process the position information from the firmware 510.The USB drivers 522 map the physical bus transactions to USB transfers.The human input device (HID) mini-driver 524 uses the USB transfers toaccess configuration and data information from the USB drivers 522(e.g., USB device descriptor, report descriptor, input and outputreport, etc.). To construct the HID collection (i.e., a USB logicdevice), the HID mini-driver 524 passes the configuration and datainformation to the HID drivers 526. Typically, the HID drivers. 526 areconfigured to provide an interface between a bus driver (e.g., the USBdrivers 522) and an interactive input device (e.g., the hardware 510).As described in detail below, the system driver 528 is configured as afilter and/or an adaptor to convert data of the USB logic device to therequired format of PUI-based applications 532. For example, the systemdriver 528 may be a Tablet PC driver configured to convert data of theUSB logic device to the required format of Microsoft® Windows® XP TabletPC Edition. The PUI-based applications 532 receive the data from the PUIfirmware 512 and responds accordingly. Thus, the system driver 528configures the handheld PUI device 140 to provide a non-applicationspecific user interface to any applications of the processor 120.

In the example of FIG. 6, the illustrate Tablet PC driver 610 convertsPUI device information 620 from the HID drivers 526 to PUI-basedapplication information 630 for the PUI-based applications 532. The HIDdrivers 526 may provide PUI device information 620 such as triggerinformation, position information, temperature information, error code,and/or a package identifier to the Tablet PC driver 610. The triggerinformation indicates the status of the tip, button(s), etc. on thewireless pointer component 140. For example, the trigger information maybe a 3-bit field indicating status of the tip 742, the button 744, and auser-defined button (not shown) on the wireless pointer component 740shown in FIG. 7. The position information indicates distances L1 and L2(i.e., the traveling time of the one or more HCI signals from thetransmitting unit 144 of the wireless pointer component 140 to the firstand second sensors 252, 254 of the one or more base components 150). Thetemperature information is used to compensate sound speed in calculatingthe screen information as described below. The error code indicatespotential error of the one or more HCI signals. The packet identifierindicates a sequence of the frame of the one or more HCI signals.

The Tablet PC driver 610 includes configuration information 612 and adata filter 614. The configuration information 612 may includeinformation such as size information of the screen 132, base componentposition information of the one or more base components 150 (e.g.,mounting location of the one or more base components 150), and/oroptimizing algorithms to improve consistency of incoming data. Thescreen size information indicates the size of the screen 132 such as15-inch, 17-inch, 19-inch, or any other suitable size of a display. Thebase component position information indicates the mounting location ofthe one or more base components 150 on or proximate to the display 130.For example, the base component position information may indicate whichside(s) of the display 130 and offset(s) in x- and/or y-direction(s).

Based on the configuration information, the data filter 614 generatesPUI-based application information 630. The PUI-based applicationinformation 630 is in a format recognized by the OS 640 such asMicrosoft® Windows® XP Tablet PC Edition (i.e., the PUI deviceinformation 620 is not detected and/or recognized by the OS 640). Forexample, the PUI-based application 630 may include trigger information,screen information, pressure information, and/or tilt information. Thetrigger information indicates the status of the wireless pointercomponent 140. For example, the trigger information may indicate thestatus of the tip 742, a barrel button (e.g., a secondary buttoncorresponding to “right-click”), write/erase mode (i.e., whether thewireless pointer component 140 is operating to write or to erase),calibration (i.e., whether the wireless pointer component 140 isupside-down or right-side up for the erase mode), and range (i.e.,whether the wireless pointer component 140 is in range of the one ormore base components 150). The screen information includes x-ycoordinate(s) of the wireless pointer component 140 relative to one ormore locations of the screen 132 such as the upper-left corner,upper-right corner, lower-left corner, lower-right corner, and/or centerof the screen 132. For example, the data filter 614 may calculate thecoordinate (x, y) of the transmitting unit 144 in the wireless pointercomponent 140 based on the following:x=(L1² −L2²)/4d, andy=√(L2²−((L1² −L2²−4d ²)/4d)²).The pressure information indicates the weight of the HID event. Forexample, a line drawn by a user may be light than another drawn line ifthe pressure information indicates a greater weight for the latter. Thetilt information indicates the angle of the HID event. As a result, theTablet PC driver 610 configures the handheld PUI device 140 to operatein any applications managed by the OS 640.

For example, the handheld PUI device 110 may be implemented on a desktopcomputer using a device such as a stylus or a pen. In the example ofFIG. 7, the illustrated desktop computer 700 includes a processor 720and a display 730 (i.e., a monitor), which are separate componentsoperatively coupled together as persons of ordinary skill in the artwill readily recognize. The display 730 may be a cathode ray tube (CRT)display, a liquid crystal display (LCD), a light-emitting diode (LED)display, a plasma display, and/or any other suitable image projectiondisplay. As described in detail below, the wireless pointer component740 may be a stylus or an electronic pen configured to transmit one ormore HCI signals (e.g., ultrasonic signals) based on an HCI eventinitiated by a user on the screen 732 of the display 730 to one or morebase components 750 via the first communication link 760. For example,the user may use the wireless pointer component 740 to write “HelloWorld” 780 directly on the screen 732 of the display 730. Accordingly,the wireless pointer component 740 transmits one or more HCI signalswhile the user is writing “Hello World” 780. One or more base components750 are disposed in fixed positions relative to the screen 732 of thedisplay 730 to receive the one or more HCI signals from the wirelesspointer component 740. For example, one or more base components 750 maybe disposed on or proximate to the screen 732 of the display 730. Basedon the one or more HCI signals, the one or more base components 750 areconfigured to generate and transmit position information of the wirelesspointer component 740 to the processor 720 via the second communicationlink 770. Accordingly, the processor 720 generates screen informationcorresponding to the HCI event on the screen 732 of the display 730. Forexample, the processor 720 converts the position information from theone or more base components 750 into pixels. Thus, the processor 720generates “Hello World” 780 as one or more pixels on the screen 732 ofthe display 730 to appear as if the user had wrote “Hello World”directly on the screen 732.

While components shown in FIG. 7 are depicted as separate blocks withinthe desktop computer 700, the functions performed by some of theseblocks may be integrated within a single semiconductor circuit or may beimplemented using two or more separate integrated circuits. For example,although the processor 720 and the display 730 are depicted as separateblocks within the desktop computer 700, persons of ordinary skill in theart will readily appreciate that the processor 720 and the display 730may be integrated within a single unit such as a tablet PC and/or alaptop (e.g., the laptop 800 of FIG. 8).

In the example of FIG. 8, the illustrated laptop computer 800 includes aprocessor 820 and a display 830. The processor 820 is operativelycoupled to the display 830 as persons of ordinary skill in the art willreadily recognize. The wireless pointer component 840 may be a stylus oran electronic pen configured to transmit one or more HCI signals basedon an HCI event initiated by a user on the screen 832 of the display 830to one or more base components 850 via the first communication link 860.The one or more base components 850 are disposed relative to the screen832 of the display 830 to receive the one or more HCI signals from thewireless pointer component 840. Based on the one or more HCI signals,the one or more base components 850 are configured to generate andtransmit position information to the processor 820 via the secondcommunication link 870. For example, the second communication link 870may be a wireless link operating in accordance with an 802.11communication protocol developed by the Institute of Electrical andElectronics Engineers (i.e., the IEEE 802.11 standard, IEEE std.802.11-1997, published 1997), a Bluetooth communication protocol, and/oran infrared communication protocol developed by the Infrared DataAssociation. Accordingly, the processor 820 generates screen informationcorresponding to the HCI event on the screen 832 of the display 830.Thus, the processor 820 generates “Hello World” 880 as one or morepixels on the screen 832 of the display 830 to appear as if the user hadwrote “Hello World” directly on the screen 832.

A flow diagram 900 representing machine readable instructions that maybe executed by a processor to provide a handheld pointer-based userinterface is illustrated in FIG. 9. Persons of ordinary skill in the artwill appreciate that the instructions may be implemented in any of manydifferent ways utilizing any of many different programming codes storedon any of many computer-readable mediums such as a volatile ornonvolatile memory or other mass storage device (e.g., a floppy disk, aCD, and a DVD). For example, the machine readable instructions may beembodied in a machine-readable medium such as an erasable programmableread only memory (EPROM), a read only memory (ROM), a random accessmemory (RAM), a magnetic media, an optical media, and/or any othersuitable type of medium. Alternatively, the machine readableinstructions may be embodied in a programmable gate array and/or anapplication specific integrated circuit (ASIC). Further, although aparticular order of actions is illustrated in FIG. 9, persons ofordinary skill in the art will appreciate that these actions can beperformed in other temporal sequences. Again, the flow diagram 900 ismerely provided as an example of one way to provide a handheldpointer-based user interface.

The flow diagram 900 includes a wireless pointer component block 910, abase component block 920, and a processor block 930. In particular, theflow diagram 800 begins with the wireless pointer component block 910 ofthe wireless pointer component 140 to detect an HCI event initiated by auser on the screen 132 of the display 130. In one particular example asshown in FIG. 10, the wireless pointer component 140 may determinewhether the detecting unit 142 is switched on (block 912). For example,the user may press the tip 742 of the wireless pointer component 740 towrite and/or draw directly on the screen 732 of the display 730. If thedetecting unit 142 is switched on then the transmitting unit 144transmits an HCI signal corresponding to the location of the wirelesspointer component 140 to the one or more base component 150 via thefirst communication link 160 (block 914). For example, the wirelesspointer component 140 may transmit an ultrasonic signal based on handmotion of the user on the screen 132 of the display 130. After a timeperiod, transmitting unit 144 then stops the transmission (block 916),and controls return to block 912. Otherwise, if the detecting unit 142is switched off (i.e., the tip 742 is not depressed onto the screen 732of the display 730), controls proceed to determine whether the user mayswitch between different operating modes via the button 244 (block 918).Thus, the user may also use the wireless pointer component 240, forexample, to select and/or scroll through a document displayed on thescreen 232 of the display 230. If the wireless pointer component 140 isused to other operating modes then the transmitting unit 144 transmitsthe HCI signal (block 914) and stops the transmission after a timeperiod (block 916), and then controls return to block 912. If thewireless pointer component 140 is not used for other operating modesthen controls directly return to block 912.

Each of the one or more base components 150 is configured to execute thebase component block 920. In the example of FIG. 11, each of the one ormore base components 150 determines whether the first and second sensors252, 254 of the receiving unit 152 received an HCI signal (block 922).If the first and second sensors 252, 254 received the HCI signal, theprocessing unit 154 determines the time difference between receipt ofthe HCI signal by the first and second sensors 252, 254 (block 924).Based on the time difference, the processing unit 154 generates positioninformation associated with the wireless pointer component 140 (block926). For example, the processing unit 154 may calculate one or morecoordinates of the wireless pointer component 140 relative to the screen132 of the display 130. The transmitting unit 156 of the one or morebase components 150 then exports the position information to theprocessor 120 via the second communication link 170 (block 928).Otherwise, if the first and second sensors 252, 254 did not receive theHCI signal, controls directly return to block 922.

In the example of FIG. 12, the processor 120 executes the processorblock 930 by processing the position information exported from the oneor more base components 150. The processor 120 converts the positioninformation into screen information (block 932) and generates the screeninformation on the screen 132 of the display 130 (block 934). Forexample, the one or more drivers 520 convert each coordinate of thewireless pointer component 140 into one or more pixels and notify theoperating system (OS) of the processor 120 (e.g., Microsoft® Windows® XPTablet PC Edition) of the corresponding display format. The OS providesa notification of the corresponding display format to the one or moreapplications 530 and waits for a response to the notification from theone or more applications 530. Thus, the handheld PUI device 110 providesan alternative user interface to the mouse and/or the keyboard that isbased on natural and intuitive hand motion of the user withoutintegrating costly touch-screen technology into the display 130.

FIG. 13 is a block diagram of an example processor system 1000 adaptedto implement the methods and apparatus disclosed herein. The processorsystem 1000 may be a desktop computer, a laptop computer, a notebookcomputer, a personal digital assistant (PDA), a server, an Internetappliance or any other type of computing device.

The processor system 1000 illustrated in FIG. 13 includes a chipset1010, which includes a memory controller 1012 and an input/output (I/O)controller 1014. As is well known, a chipset typically provides memoryand I/O management functions, as well as a plurality of general purposeand/or special purpose registers, timers, etc. that are accessible orused by a processor 1020. The processor 1020 is implemented using one ormore processors. For example, the processor 1020 may be implementedusing one or more of the Intel® Pentium® family of microprocessors, theIntel® Itanium® family of microprocessors, Intel® Centrino® family ofmicroprocessors, and/or the Intel XScale® family of processors. In thealternative, other processors or families of processors may be used toimplement the processor 1020. The processor 1020 includes a cache 1022,which may be implemented using a first-level unified cache (L1), asecond-level unified cache (L2), a third-level unified cache (L3),and/or any other suitable structures to store data as persons ofordinary skill in the art will readily recognize.

As is conventional, the memory controller 1012 performs functions thatenable the processor 1020 to access and communicate with a main memory1030 including a volatile memory 1032 and a non-volatile memory 1034 viaa bus 1040. The volatile memory 132 may be implemented by SynchronousDynamic Random Access Memory (SDRAM), Dynamic Random Access Memory(DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), and/or any othertype of random access memory device. The non-volatile memory 1034 may beimplemented using flash memory, Read Only Memory (ROM), ElectricallyErasable Programmable Read Only Memory (EEPROM), and/or any otherdesired type of memory device.

The processor system 1000 also includes an interface circuit 1050 thatis coupled to the bus 1040. The interface circuit 1050 may beimplemented using any type of well known interface standard such as anEthernet interface, a universal serial bus (USB), a third generationinput/output interface (3GIO) interface, and/or any other suitable typeof interface.

One or more input devices 1060 are connected to the interface circuit1050. The input device(s) 1060 permit a user to enter data and commandsinto the processor 1020. For example, the input device(s) 1060 may beimplemented by a keyboard, a mouse, a touch-sensitive display, a trackpad, a track ball, an isopoint, and/or a voice recognition system.

One or more output devices 1070 are also connected to the interfacecircuit 1050. For example, the output device(s) 1070 may be implementedby display devices (e.g., a light emitting display (LED), a liquidcrystal display (LCD), a cathode ray tube (CRT) display, a printerand/or speakers). The interface circuit 1050, thus, typically includes,among other things, a graphics driver card.

The processor system 1000 also includes one or more mass storage devices1080 configured to store software and data. Examples of such massstorage device(s) 1080 include floppy disks and drives, hard diskdrives, compact disks and drives, and digital versatile disks (DVD) anddrives.

The interface circuit 1050 also includes a communication device such asa modem or a network interface card to facilitate exchange of data withexternal computers via a network. The communication link between theprocessor system 1000 and the network may be any type of networkconnection such as an Ethernet connection, a digital subscriber line(DSL), a telephone line, a cellular telephone system, a coaxial cable,etc.

Access to the input device(s) 1060, the output device(s) 1070, the massstorage device(s) 1080 and/or the network is typically controlled by theI/O controller 1014 in a conventional manner. In particular, the I/Ocontroller 1014 performs functions that enable the processor 1020 tocommunicate with the input device(s) 1060, the output device(s) 1070,the mass storage device(s) 1080 and/or the network via the bus 1040 andthe interface circuit 1050.

While the components shown in FIG. 13 are depicted as separate blockswithin the processor system 1000, the functions performed by some ofthese blocks may be integrated within a single semiconductor circuit ormay be implemented using two or more separate integrated circuits. Forexample, although the memory controller 1012 and the I/O controller 1014are depicted as separate blocks within the chipset 1010, persons ofordinary skill in the art will readily appreciate that the memorycontroller 1012 and the I/O controller 1014 may be integrated within asingle semiconductor circuit.

The methods and apparatus disclosed herein are well suited for desktopcomputers, laptop computers, tablet PCs, etc. However, persons ofordinary skill in the art will appreciate that the teachings of thedisclosure may be applied to other processor systems such as portableand/or handheld devices including personal digital assistants, pocketPCs, cellular telephones, etc:

Although certain example methods, apparatus, and articles of manufacturehave been described herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus, and articles of manufacture fairly falling within the scopeof the appended claims either literally or under the doctrine ofequivalents.

1. A method to provide a handheld pointer-based user interfacecomprising: encoding, at a wireless pointer component, a firsthuman-computer interaction (HCI) signal with a first code to correspondto a first time associated with a first HCI operation; transmitting viaa first communication link the first encoded HCI signal from thewireless pointer component to a base component that is operativelycoupled to a screen of a display; encoding, at the wireless pointercomponent, a second HCI signal with a second code to correspond to asecond time associated with the first HCI operation; transmitting viathe first communication link the second encoded HCI signal from thewireless pointer component to the base component, wherein the first codeand the second code differ to indicate a difference between the firsttime the second time; generating position information associated withthe wireless pointer component based on one of the first and second HCIsignals; and transmitting via a second communication link the positioninformation from the base component to a processor configured togenerate screen information on the screen of the display.
 2. A method asdefined in claim 1, wherein the first time corresponds to a firstposition of the wireless pointer component, and wherein the second timecorresponds to a second position of the wireless pointer component.
 3. Amethod as defined in claim 1, further comprising transmitting a thirdHCI signal associated with one of writing, drawing, selecting, orscrolling directly on the screen of the display with the wirelesspointer component by a user.
 4. A method as defined in claim 1, whereinthe screen of the display is associated with one of a desktop computer,a laptop computer, or a handheld computer.
 5. A method as defined inclaim 1, wherein transmitting via the first communication link the firstHCI signal and the second HCI signal from the wireless pointer componentto the base component operatively coupled to the screen of the displaycomprises transmitting the first HCI signal and the second HCI signalfrom the wireless pointer component to the base component in response toone of pressing a tip of the wireless pointer component on the screen ofthe display or pressing a button of the wireless pointer component.
 6. Amethod as defined in claim 1, wherein transmitting via the secondcommunication link the position information from the base component tothe processor configured to generate screen information on the screen ofthe display comprises transmitting the position information from thebase component to the processor via one or more communication linksoperating in accordance with one of an 802.11-based communicationprotocol, a Bluetooth-based communication protocol, or an infrared-basedcommunication protocol.
 7. A method as defined in claim 1, furthercomprising converting the position information from a first format to asecond format based on configuration information associated with one ofthe base component or the screen of the display.
 8. A method as definedin claim 1, further comprising generating one or more coordinates of thewireless pointer component relative to the screen of the display basedon the position information.
 9. A method as defined in claim 1, furthercomprising operatively coupling the base component on a side of thedisplay to receive the first HCI signal and the second HCI signal.
 10. Amachine readable medium storing instructions, which when executed, causea machine to: encode, at a wireless pointer component, a firsthuman-computer interaction (HCI) signal with a first code to correspondto a first time associated with a first HCI operation; transmit via afirst communication link the first encoded HCI signal from the wirelesspointer component to a base component that is operatively coupled to ascreen of a display; encode, at the wireless pointer component, a secondHCI signal with a second code to correspond to a second time associatedwith the first HCI operation; transmit via the first communication linkthe second encoded HCI signal from the wireless pointer component to thebase component, wherein the first code and the second code differ toindicate a difference between the first time and the second time;generate position information of associated with the wireless pointercomponent based on one of the first and second HCI signals; and transmitvia a second communication link the information from the base componentto a processor configured to generate screen information on the screenof the display.
 11. A machine readable medium as defined in claim 10,wherein the first time corresponds to a first position of the wirelesspointer component, and wherein the second time corresponds to a secondposition of the wireless pointer component.
 12. A machine readablemedium as defined in claim 10, wherein the instructions, when executed,cause the machine to transmit via the first communication link the firstHCI signal and the second HCI signal from the wireless pointer componentto the base component operatively coupled to the screen of the displayby transmitting a third HCI signal associated with one of writing,drawing, selecting, or scrolling directly on the screen of the displaywith the wireless pointer component by a user.
 13. A machine readablemedium as defined in claim 10, wherein the instructions, when executed,cause the machine to transmit via the first communication link the firstHCI signal and the second HCI signal from the wireless pointer componentto the base component operatively coupled to the screen of the displayby transmitting the first HCI signal and the second HCI signal from thewireless pointer component to the base component operatively coupled tothe screen of the display associated with one of a desktop computer, alaptop computer, or a hand held computer.
 14. A machine readable mediumas defined in claim 10, wherein the instructions, when executed, causethe machine to transmit via the first communication link the first HCIsignal and the second HCI signal from the wireless pointer component tothe base component operatively coupled to the screen of the display bytransmitting the first HCI signal and the second HCI signal from thewireless pointer component to the base component in response to one ofpressing a tip of the wireless pointer component on the screen of thedisplay or pressing a button of the wireless pointer component.
 15. Amachine readable medium as defined in claim 10, wherein theinstructions, when executed, cause the machine to convert the positioninformation from a first format to a second format based onconfiguration information associated with one of the base component orthe screen of the display.
 16. A machine readable medium as defined inclaim 10, wherein the instructions, when executed, cause the machine togenerate one or more coordinates of the wireless pointer componentrelative to the screen of the display based on the position information.17. An apparatus to provide a handheld pointer-based user interfacecomprising: a wireless pointer component configured to encode a firsthuman-computer interaction (HCI) signal with a first code to correspondto a first time associated with a first HCI operation and to transmitvia a first communication link the first encoded HCI signal, wherein thewireless pointer component is configured to encode a second HCI signalwith a second code to correspond to a second time associated with thefirst HCI operation and to transmit via the first communication link thesecond encoded HCI signal; a base component operatively coupled to ascreen of a display to receive via the first communication link thefirst and second encoded HCI signals from the wireless pointercomponent, the base component being configured to generate positioninformation associated with the wireless pointer component based on thefirst and second encoded HCI signals, wherein the first code and thesecond code differ to indicate a difference between the first time andthe second time; and a processor configured to generate screeninformation on the screen of the display, wherein the processor is toreceive via a second communication link the position information fromthe base component.
 18. An apparatus as defined in claim 17, wherein thefirst time corresponds to a first position of the wireless pointercomponent, and wherein the second time corresponds to a second positionof the wireless pointer component.
 19. An apparatus as defined in claim17, wherein the wireless pointer component comprises one of a stylus oran electronic pen.
 20. An apparatus as defined in claim 17, wherein thescreen information comprises one or more coordinates calculated based onthe position information.
 21. An apparatus as defined in claim 17,wherein the processor comprises one of a desktop computer, a laptopcomputer, or a handheld computer.
 22. An apparatus as defined in claim17, wherein the display comprises one of a cathode ray tube (ORT)display, a liquid crystal display (LCD), a light-emitting diode (LED)display, or a plasma display.
 23. An apparatus as defined in claim 17,wherein the second communication link operates in accordance with one ofan 802.11-based communication protocol, a Bluetooth-based communicationprotocol, or an infrared-based communication protocol.
 24. A processorsystem to provide a hand held pointer-based user interface comprising: adisplay having a screen configured to generate one of text or graphics;a processor operatively coupled to the display to generate screeninformation on the screen of the display; and a handheld pointer-baseduser interface device having a wireless pointer component configured totransmit via a first communication link one or more human-computerinteraction (HCI) signals associated with an HCI operation, wherein afirst one of the HCI signals associated with the HCI operation isencoded differently from a second one of the HCI signals associated withthe HCI operation to indicate a difference in time between a first timecorresponding to the first one of the HCI signals and a second timecorresponding to the second one of the HCI signals, and a base componentoperatively coupled to the screen of the display to receive via thefirst communication link the HCI signals from the wireless pointercomponent and configured to generate position information associatedwith the wireless pointer component based on the HCI signals, and totransmit via a second communication link the position information fromthe one or more base components to the processor.
 25. A processor systemas defined in claim 24, wherein the HCI signals correspond to one ofwriting, drawing, selecting, or scrolling directly on the screen of thedisplay with the wireless pointer component by a user.
 26. A processorsystem as defined in claim 24, wherein the wireless pointer componentcomprises one of a stylus or an electronic pen.
 27. A processor systemas defined in claim 24, wherein the screen information comprises one ormore coordinates calculated based on the position information.
 28. Aprocessor system as defined in claim 24, wherein the processor comprisesone of a desktop computer, a laptop computer, or a handheld computer.29. A processor system as defined in claim 24, wherein the displaycomprises one of a cathode ray tube (ORT) display, a liquid crystaldisplay (LCD), a light-emitting diode (LED) display, or a plasmadisplay.
 30. A processor system as defined in claim 24, wherein thesecond communication link operates in accordance with one of an802.11-based communication protocol, a Bluetooth-based communicationprotocol, or an infrared-based communication protocol.